package hibdeveloperguide.persistencecontexts;

import hibdeveloperguide.dbaccess.Auto;
import hibdeveloperguide.dbaccess.SessionManager;

import org.hibernate.Hibernate;
import org.hibernate.Session;
import org.hibernate.Transaction;

public class ObteniendoUnaEntidad {
	
	public static void main(String[] args) throws Exception {
		Auto a;
		
		Session s = SessionManager.getSessionFactory().openSession();
		Transaction tx = null;
		try {
			tx = s.beginTransaction();
			
			
//			a = (Auto) s.byId( Auto.class ).getReference( 1L );	// Obteniendo sin datos inicializados		
			
			a = (Auto) s.byId( Auto.class ).load( 1L );	// Obteniendo con datos inicializados
			
			tx.commit();
		} catch(Exception e) {
			if(tx != null) {
				tx.rollback();
			}
			throw e;
		} finally {
			s.close();
		}
//		Hibernate.initialize(a);
		System.out.println(a.getMarca());
	}

}
